﻿using PropertyChanged;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace VIA.SiMoJi.Domain.Electronics
{
    ///// <summary>
    ///// 雷赛卡轴控制参数
    ///// </summary>
    //[AddINotifyPropertyChangedInterface]
    //public class AxisOption
    //{
    //    public AxisOption() { }
    //    [DisplayName(""), Description(""), Category("01.运行参数"),Browsable(false)]
    //    public ObservableCollection<AxisPointParam> AxisPositions { get; set; } = new();
    //    /// <summary>
    //    /// 轴号
    //    /// </summary>
    //    [DisplayName("轴号"), Description(""), Category("01.运行参数"),Browsable(false)]
    //    public ushort UsAxis { get; set; } = 0;
    //    #region 运行参数
    //    /// <summary>
    //    /// 运行速度: unit/s
    //    /// </summary>
    //    [DisplayName("01.运行速度"), Description("运行速度: unit/s"), Category("01.运行参数"), Browsable(true)]
    //    public double MaxVel { get; set; } = 3000.0;
    //    /// <summary>
    //    /// 起始速度: unit/s
    //    /// </summary>

    //    [DisplayName("02.起始速度"), Description("起始速度: unit/s"), Category("01.运行参数"), Browsable(true)]
    //    public double StartVel { get; set; } = 1000.0;
    //    /// <summary>
    //    /// 停止速度: unit/s
    //    /// </summary>

    //    [DisplayName("03.停止速度"), Description("停止速度: unit/s"), Category("01.运行参数"), Browsable(true)]
    //    public double StopVel { get; set; } = 2000.0;
    //    /// <summary>
    //    /// 加速时间: s
    //    /// </summary>

    //    [DisplayName("04.加速时间"), Description(" 加速时间: s"), Category("01.运行参数"), Browsable(true)]
    //    public double AccTime { get; set; } = 0.1;
    //    /// <summary>
    //    /// 减速时间: s
    //    /// </summary>

    //    [DisplayName("05.减速时间"), Description("减速时间: s"), Category("01.运行参数"), Browsable(true)]
    //    public double DecTime { get; set; } = 0.1;
    //    /// <summary>
    //    /// 运动模式0：相对坐标模式，1：绝对坐标模式
    //    /// </summary>
    //    [DisplayName("06.运动模式"), Description("运动模式0：相对坐标模式，1：绝对坐标模式"), Category("01.运行参数"), Browsable(true)]
    //    public ushort MoveMode { get; set; } = 1;
    //    /// <summary>
    //    /// S段时间: s
    //    /// </summary>

    //    [DisplayName("07.S段时间"), Description("S段时间: s"), Category("01.运行参数"), Browsable(true)]
    //    public double SparaTime { get; set; } = 0.01;
    //    /// <summary>
    //    /// 脉冲当量: pulse/unit
    //    /// </summary>
    //    [DisplayName("08.脉冲当量"), Description("脉冲当量: pulse/unit"), Category("01.运行参数"), Browsable(true)]
    //    public double PulseEquivalent { get; set; } = 1;
    //    /// <summary>
    //    ///编码器系数 
    //    /// </summary>

    //    [DisplayName("09.编码器系数"), Description("编码器系数"), Category("01.运行参数"), Browsable(true)]
    //    public double EncoderFactor { get; set; } = 1;
    //    /// <summary>
    //    /// 编码器误差带，检测轴位置时允许的脉冲差值
    //    /// </summary>

    //    [DisplayName("10.编码器误差带"), Description("检测轴位置时允许的脉冲差值"), Category("01.运行参数"), Browsable(true)]
    //    public short ErrorTolerance { get; set; } = 5;
    //    /// <summary>
    //    /// Jog高速
    //    /// </summary>

    //    [DisplayName("11.Jog高速"), Description("Jog高速"), Category("01.运行参数"), Browsable(false)]
    //    public double JogHighSpeed { get; set; }
    //    /// <summary>
    //    /// Jog低速
    //    /// </summary>

    //    [DisplayName("12.Jog低速"), Description("Jog低速"), Category("01.运行参数"), Browsable(true)]
    //    public double JogLowSpeed { get; set; }
    //    [DisplayName("13.运动方向"), Description("是否反转运动方向:否(1)-不反转,默认为正,是(0)-反转,默认为反"), Category("01.运行参数"), Browsable(true)]
    //    public bool FlipMoveDirection { get; set; }
    //    /// <summary>
    //    /// 正软极限
    //    /// </summary>

    //    [DisplayName("正软极限"), Description("正软极限"), Category("01.运行参数"), Browsable(false)]
    //    public double PositiveLimit { get; set; }
    //    /// <summary>
    //    /// 负软极限
    //    /// </summary>

    //    [DisplayName("负软极限"), Description("负软极限"), Category("01.运行参数"), Browsable(false)]
    //    public double NagetiveLimit { get; set; }
    //    [DisplayName("不启用软极限位置"), Description("不启用软极限位置"), Category("01.运行参数"), Browsable(true)]
    //    public bool IsIgnoreLimit { get; set; }

    //    #endregion

    //    #region 02.回零参数
    //    /// <summary>
    //    /// 回零低速
    //    /// </summary>

    //    [DisplayName("01.回零低速"), Description("回零低速"), Category("02.回零参数"), Browsable(true)]
    //    public double HomeLowSpeed { get; set; } = 5;
    //    /// <summary>
    //    /// 回零高速
    //    /// </summary>

    //    [DisplayName("02.回零高速"), Description("回零高速"), Category("02.回零参数"), Browsable(false)]
    //    public double HomeHighSpeed { get; set; } = 10;
    //    /// <summary>
    //    /// 回零加速时间
    //    /// </summary>

    //    [DisplayName("03.回零加速时间"), Description("回零加速时间"), Category("02.回零参数"), Browsable(true)]
    //    public double HomeAccTime { get; set; } = 0.1;
    //    /// <summary>
    //    /// 回零减速时间
    //    /// </summary>

    //    [DisplayName("04.回零减速时间"), Description("回零减速时间"), Category("02.回零参数"), Browsable(true)]
    //    public double HomeDecTime { get; set; } = 0.1;
    //    /// <summary>
    //    /// 回零模式
    //    /// </summary>

    //    [DisplayName("05.回零模式"), Description("回零模式"), Category("02.回零参数"), Browsable(true)]
    //    public ushort HomeMode { get; set; } = 28;
    //    /// <summary>
    //    /// 回零偏移
    //    /// </summary>

    //    [DisplayName("06.回零偏移"), Description("回零偏移"), Category("02.回零参数"), Browsable(true)]
    //    public double HomeOffset { get; set; } = 0.0;
    //    /// <summary>
    //    /// 轴有无原点开关,无原点开关回原不判断原点
    //    /// </summary>
    //    [DisplayName("07.忽略原点开关"), Description("轴有无原点开关,无原点开关回原不判断原点"), Category("02.回零参数"), Browsable(true)]
    //    public bool NoneORG { get; set; }
    //    #endregion
    //}
}
